# -*- coding: utf-8 -*-
"""
@Time    : 2025/2/25 11:07 
@Author  : ZhangShenao 
@File    : 1.机器学习基础概念.py
@Desc    : 机器学习基础概念
"""

import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split

# 加载原始数据集
data = pd.read_csv("housing_data.csv")

# 准备数据
# 特征X是一个二维数组,包含面积、卧室数量和地理位置三个特征
# 目标变量y是一个一维数组,表示每个样本的售价
X = data[['面积', '卧室数量', '地理位置']]
y = data['售价']

# 划分数据集
# 使用scikit-learn库的train_test_split函数,将数据集划分为训练集和测试集
# 训练集用于训练模型
# 测试集用于评估模型的性能,以检查模型对于未见过的样本的泛化能力
# 参数test_size表示测试集在整个数据集中所占的比例,例如test_size=0.2,意味着20%的数据将被用作测试集,剩下的 80% 则作为训练集
# 参数random_state是一个整数,用于控制随机数生成器的状态,提供一个确切的值可以确保每次分割都是相同的
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 初始化模型
model = LinearRegression()

# 训练模型
model.fit(X_train, y_train)

# 使用模型进行预测
predictions = model.predict(X_test)

# 现在，`predictions`包含了我们模型预测的房价
print(f"测试数据集: \n{X_test}")
print(f"预测房价: {predictions}")
